package com.gewei.service;

import com.gewei.dto.CheckItemTypeDTO;
import com.gewei.entity.PageResult;
import com.gewei.entity.QueryPageBean;
import com.gewei.pojo.CheckItem;

import java.util.List;

/**
 * 预约管理-检查项管理服务接口
 *
 * @author gewei
 */
public interface CheckItemService {

    /**
     * 新增检查项
     *
     * @param checkItem 检查项实体对象
     */
    void add(CheckItem checkItem);

    /**
     * 分页查询检查项
     *
     * @param queryPageBean 分页查询条件（当前页码、每页显示记录数、查询条件）
     * @return PageResult 包含分页数据（总记录数、当前页需要展示的数据集合）
     */
    PageResult pageQuery(QueryPageBean queryPageBean);

    /**
     * 根据 ID 删除检查项
     *
     * @param id 检查项 ID
     */
    void deleteById(Integer id);

    /**
     * 编辑检查项信息
     *
     * @param checkItem 检查项实体对象
     */
    void edit(CheckItem checkItem);

    /**
     * 编辑检查项类型
     *
     * @param checkItemTypeDTO 包含类型相关参数的 DTO 对象（如 {id: 1, type: "2"}）
     */
    void editType(CheckItemTypeDTO checkItemTypeDTO);

    /**
     * 根据 ID 查询检查项详情
     *
     * @param id 检查项 ID
     * @return CheckItem 检查项实体
     */
    CheckItem findById(Integer id);

    /**
     * 查询所有检查项
     *
     * @return List<CheckItem> 检查项列表
     */
    List<CheckItem> findAll();

}